/* ----------------------------------------------------------
   ABSOLUTNÍ STABILIZACE – ZAMEZENÍ SKÁKÁNÍ OBSAHU
   ---------------------------------------------------------- */

/* Zamezení skákání stránky při změně scrollbaru */
html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

/* Když je košík otevřen, zabraníme scrollování a posunu */
body.cart-widget-open {
    overflow: hidden !important;
    padding-right: 0 !important;
}

/* ----------------------------------------------------------
   TLAČÍTKA DETAIL – SPOLEČNÉ NASTAVENÍ
   ---------------------------------------------------------- */

.product .product-btn.product-btn--detail,
.product-box .product-btn.product-btn--detail,
.product-card .product-btn.product-btn--detail,
.products-block__item .product-btn.product-btn--detail,
.product-inner .product-btn.product-btn--detail {
    display: block;
    width: 100%;
    margin: 10px auto 0;
    position: static;
    box-sizing: border-box;
    text-align: center;
}

.product-btn.product-btn--detail .btn.btn-primary,
.product-btn.product-btn--absolute .btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-align: center;
    line-height: 1;
    padding: 0 20px;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

/* ----------------------------------------------------------
   FLEX ŘEŠENÍ – BEZ ABSOLUTE (stabilní i po mouseleave)
   ---------------------------------------------------------- */

.has-btn-host,
.product:has(.product-btn.product-btn--absolute),
.product-box:has(.product-btn.product-btn--absolute),
.product-card:has(.product-btn.product-btn--absolute),
.products-block__item:has(.product-btn.product-btn--absolute),
.product-inner:has(.product-btn.product-btn--absolute) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    overflow: visible !important;
    transition: none !important;
    position: relative !important; /* DŮLEŽITÉ: umožní absolute pozicování dětí */
}

/* Wrapper tlačítka – ABSOLUTNÍ POZICOVÁNÍ na spod karty */
.has-btn-host > .product-btn.product-btn--detail,
.has-btn-host > .product-btn.product-btn--absolute,
.product .product-btn.product-btn--absolute,
.product-box .product-btn.product-btn--absolute,
.product-card .product-btn.product-btn--absolute,
.products-block__item .product-btn.product-btn--absolute,
.product-inner .product-btn.product-btn--absolute {
    position: absolute !important; /* ZMĚNA: absolute místo static */
    bottom: 15px !important; /* Fixní vzdálenost od spodu */
    left: 50% !important;
    transform: translateX(-50%) !important; /* Horizontální vycentrování */
    width: auto !important;
    margin: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 10 !important;
    order: 999 !important;
}

/* Samotné tlačítko – držet rozměr, nezalamovat */
.product-btn.product-btn--absolute .btn.btn-primary {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

/* Produktová karta musí mít padding-bottom pro místo tlačítka */
.product,
.product-box,
.product-card,
.products-block__item,
.product-inner {
    position: relative !important;
    padding-bottom: 80px !important; /* Místo pro absolutně pozicované tlačítko */
}

/* ----------------------------------------------------------
   ROZMĚRY – DESKTOP (≥ 992 px): 181 × 51 px
   ---------------------------------------------------------- */
@media (min-width: 992px) {
    .product-btn.product-btn--detail .btn.btn-primary,
    .product-btn.product-btn--absolute .btn.btn-primary,
    .product-btn.product-btn--detail .btn.btn-primary:hover,
    .product-btn.product-btn--absolute .btn.btn-primary:hover,
    .product-btn.product-btn--detail .btn.btn-primary:focus,
    .product-btn.product-btn--absolute .btn.btn-primary:focus,
    .product-btn.product-btn--detail .btn.btn-primary:active,
    .product-btn.product-btn--absolute .btn.btn-primary:active {
        width: 181px !important;
        height: 51px !important;
        min-height: 51px !important;
    }
}

/* ----------------------------------------------------------
   ROZMĚRY – MOBIL (≤ 767 px): 257 × 41 px
   ---------------------------------------------------------- */
@media (max-width: 767px) {
    .product-btn.product-btn--detail .btn.btn-primary,
    .product-btn.product-btn--absolute .btn.btn-primary,
    .product-btn.product-btn--detail .btn.btn-primary:hover,
    .product-btn.product-btn--absolute .btn.btn-primary:hover,
    .product-btn.product-btn--detail .btn.btn-primary:focus,
    .product-btn.product-btn--absolute .btn.btn-primary:focus,
    .product-btn.product-btn--detail .btn.btn-primary:active,
    .product-btn.product-btn--absolute .btn.btn-primary:active {
        width: 257px !important;
        height: 41px !important;
        min-height: 41px !important;
        padding: 0 16px;
    }
}

/* ----------------------------------------------------------
   HOVER, FOCUS, ACTIVE STAVY – ZMĚNA BARVY
   ---------------------------------------------------------- */

.product-btn.product-btn--detail .btn.btn-primary:hover,
.product-btn.product-btn--absolute .btn.btn-primary:hover {
    background-color: #0056b3 !important;
    color: #ffffff !important;
}

.product-btn.product-btn--detail .btn.btn-primary:focus,
.product-btn.product-btn--absolute .btn.btn-primary:focus {
    outline: 2px solid #0056b3 !important;
    outline-offset: 2px !important;
}

.product-btn.product-btn--detail .btn.btn-primary:active,
.product-btn.product-btn--absolute .btn.btn-primary:active {
    background-color: #003d82 !important;
    transform: scale(0.95) !important;
}

/* ----------------------------------------------------------
   VOLITELNÉ: jemné srovnění gridu
   ---------------------------------------------------------- */
.equalized-card {
    /* min-height nastaví JS inline podle nejvyšší karty */
}
